package com.chen.dome6copy;

import java.io.*;

public class CopyImageDome2 {
    public static void main(String[] args) throws Exception {
        //目标：把文件从D盘复制到C盘{使用字节流}
        //源文件："D:\素材\图片视频素材\图片1.png"
        //目标文件：'C:\图片1.png' 必须要带文件名，因为程序无法自动生成文件名

        copy("C:\\图片1.png", "D:\\图片1.png");


    }
    //复制文件

    /**
     * @param srcpath
     * @param destpath
     * @throws Exception
     */
    public static void copy(String srcpath, String destpath) throws Exception {
//        InputStream src=null;
//        OutputStream dest=null;
        try (
                //这里只能放资源对象,执行完毕自动执行close方法
                InputStream src = new FileInputStream(srcpath);
                OutputStream dest = new FileOutputStream(destpath);
                muun a = new muun();
        ) {
            //简洁方法 可自动关闭流

            byte[] bs = new byte[1024];
            int b;
            while ((b = src.read(bs)) != -1) {// !=-1
                dest.write(bs, 0, b);
            }
            System.out.println("复制成功");

        } catch (IOException e) {
            e.printStackTrace();
        }
        //finally {
        //释放资源，确保程序能执行并且文件可以关闭
//            try {
//                if(dest!=null) dest.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//            try {
//                if(src!=null) src.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
        //过于臃肿 不够简洁！！！
    }
}


   class muun implements Closeable {

       @Override
       public void close() throws IOException {
           System.out.println("陈世玉的资源关闭了");
       }
   }


